<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        /*
        基本数据类型
        String Number Boolean Null Undefined
        引用数据类型
        Object

        在js中为我们提供了三个包装类,通过这三个包装类将基本数据类型的数据转换为对象
        String()
            可以将基本数据类型转换为String对象
        Number()
            可以将基本数据类型转换为Number对象
        Boolean()
            可以将基本数据类型转换为Boolean对象 

        如果我们在实际应用中，我们不会使用基本数据类型的对象
            使用基本数据类型的对象，有一些不可预料的错误
        */
        
        var num = new Number(3);
        //console.log(typeof num);
        
        //向num中添加一个属性
        //对象往往比基本数据类型功能强大
        num.hello = "abcasda";
        //console.log(num.hello);

        /*
        方法和属性只能添加给对象，不能添加给基本数据类型
        当我们对一些剧本数据类型去调用属性方法时
            浏览器会临时使用包装类将其转换为对象，然后调用属性方法
            只是临时的转换，转换语句完成后又会转换回去
        */
        var a = 123;

        a = a.toString();

        a.hello = "helo";

        console.log(a.hello);

        // console.log(typeof a);
    </script>
</head>
<body>
    
</body>
</html>